add_package()

py_library(
  NAME
    abstract
  DEPS
    ._abstract
    .abstract_utils
    .class_mixin
    .function
    .mixin
)

py_library(
  NAME
    _abstract
  SRCS
    __init__.py
    abstract.py
  DEPS
    ._base
    ._classes
    ._function_base
    ._instance_base
    ._instances
    ._interpreter_function
    ._pytd_function
    ._singletons
    ._typing
    .class_mixin
    .mixin
)

py_library(
  NAME
    _base
  SRCS
    _base.py
  DEPS
    .abstract_utils
    pytype.utils
    pytype.pytd.pytd
    pytype.types.types
)

py_library(
  NAME
    _classes
  SRCS
    _classes.py
  DEPS
    ._base
    ._instance_base
    ._instances
    ._special_classes
    .abstract_utils
    .class_mixin
    .function
    .mixin
    pytype.utils
    pytype.errors.error_types
    pytype.pyc.pyc
    pytype.pytd.pytd
    pytype.pytd.codegen.codegen
    pytype.typegraph.cfg
    pytype.types.types
)

py_library(
  NAME
    _function_base
  SRCS
    _function_base.py
  DEPS
    ._base
    ._classes
    ._instance_base
    ._instances
    ._singletons
    ._typing
    .abstract_utils
    .function
    pytype.errors.error_types
    pytype.types.types
)

py_library(
  NAME
    _instance_base
  SRCS
    _instance_base.py
  DEPS
    ._base
    .abstract_utils
    .class_mixin
    .function
    pytype.utils
    pytype.errors.error_types
)

py_library(
  NAME
    _instances
  SRCS
    _instances.py
  DEPS
    ._base
    ._instance_base
    .abstract_utils
    .function
    .mixin
    pytype.errors.error_types
    pytype.pytd.pytd
    pytype.typegraph.cfg
    pytype.typegraph.cfg_utils
    pytype.types.types
)

py_library(
  NAME
    _interpreter_function
  SRCS
    _interpreter_function.py
  DEPS
    ._classes
    ._function_base
    ._instance_base
    ._instances
    ._typing
    .abstract_utils
    .class_mixin
    .function
    pytype.errors.error_types
    pytype.pytd.pytd
    pytype.typegraph.cfg_utils
)

py_library(
  NAME
    _pytd_function
  SRCS
    _pytd_function.py
  DEPS
    ._base
    ._classes
    ._function_base
    ._instance_base
    ._singletons
    ._typing
    .abstract_utils
    .function
    .mixin
    pytype.utils
    pytype.errors.error_types
    pytype.pytd.pytd
    pytype.typegraph.cfg
    pytype.types.types
)

py_library(
  NAME
    _singletons
  SRCS
    _singletons.py
  DEPS
    ._base
    pytype.utils
    pytype.pytd.pytd
    pytype.typegraph.cfg
)

py_library(
  NAME
    _special_classes
  SRCS
    _special_classes.py
  DEPS
    .abstract_utils
    .class_mixin
    pytype.pytd.pytd
)

py_library(
  NAME
    _typing
  SRCS
    _typing.py
  DEPS
    ._base
    ._classes
    ._instance_base
    .abstract_utils
    .function
    .mixin
    pytype.utils
    pytype.pytd.pytd
)

py_library(
  NAME
    abstract_utils
  SRCS
    abstract_utils.py
  DEPS
    pytype.utils
    pytype.pyc.pyc
    pytype.pytd.pytd
    pytype.typegraph.cfg
    pytype.typegraph.cfg_utils
)

py_library(
  NAME
    class_mixin
  SRCS
    class_mixin.py
  DEPS
    .abstract_utils
    .function
    .mixin
    pytype.utils
    pytype.pytd.pytd
    pytype.typegraph.cfg
)

py_library(
  NAME
    function
  SRCS
    function.py
  DEPS
    ._base
    .abstract_utils
    pytype.pretty_printer_base
    pytype.utils
    pytype.errors.error_types
    pytype.pytd.pytd
    pytype.typegraph.cfg
    pytype.typegraph.cfg_utils
    pytype.types.types
)

py_library(
  NAME
    mixin
  SRCS
    mixin.py
  DEPS
    .abstract_utils
    .function
    pytype.pytd.pytd
    pytype.typegraph.cfg
    pytype.types.types
)

py_test(
  NAME
    abstract_test
  SRCS
    abstract_test.py
  DEPS
    ._abstract
    .abstract_utils
    .function
    pytype.config
    pytype.errors.error_types
    pytype.overlays.overlays
    pytype.pytd.pytd
    pytype.tests.test_base
    pytype.typegraph.cfg
)

py_test(
  NAME
    abstract_utils_test
  SRCS
    abstract_utils_test.py
  DEPS
    .abstract_utils
    pytype.config
    pytype.tests.test_base
)

py_test(
  NAME
    mixin_test
  SRCS
    mixin_test.py
  DEPS
    .mixin
)
